package 传智播客_黑马.java基础.LearnException;
/*
异常的产生过程解析(分析异常的产生方式,如何处理异常)
 */
public class LearnException {
    public static void main(String[] args) {
        //创建一个int类型的数组,并赋值
        int[] arr = {1,2,3};
        int e = getElement(arr,3);//ArrayIndexOutOfBoundsException
        System.out.println(e);
    }

    /*
    定义一个方法.获取数组指定索引处的元素
    参数:
        int[] arr
        int index
     */
    public static int getElement(int[] arr,int index){
        /*
        访问了数组中的3索引,这时候JVM就会检测出程序存在异常
        JVM会做两件事情:
                1,JVM会根据异常产生的原因,创建一个异常对象,这个对象包含了异常产生的(内容,原因,以及位置)
                    new ArrayIndexOutOfBoundsException("3")
                2,在getElement方法中,没有异常的处理逻辑,那么JVM就会把异常对象抛出给调用者,main方法来处理这个异常
                由于main方法也没有相关的处理逻辑,继续吧异常抛出给JVM处理
                JVM收到这个异常对象之后
                    1,把异常对象(内容原因位置)以红色字体打印在控制台上
                    2,JVM会终止当前正在执行的java程序-->中断处理
         */
        int j = arr[index];
        return j;
    }
}
